package it.scambiocorse.dao;

import it.scambiocorse.model.CronBean;
import it.scambiocorse.model.JTableType;
import it.scambiocorse.model.ServizioType;
import it.scambiocorse.model.UtenteType;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;

public interface ServizioService {

	public ArrayList<ServizioType> listaServiziPerArea(int idArea, String filtroData, String dataFine) throws Exception;
	public int inserisciServizio(ServizioType s) throws Exception;
	public ServizioType dettaglioServizioIdServUser(int idServ, int idUser) throws Exception;
    public ServizioType dettaglioServizioIdServ(int idServ, int idUser) throws Exception;
	public ArrayList<ServizioType> listaServiziPrivatiInScadenza() throws Exception;
	public ArrayList<CronBean> dettaglioUserPartPerServ(int idServ) throws Exception;
	public void assegnaCorsaPrivata(int idArea, int idServ, int idUserExec) throws Exception;
	public void annullaServizio(int idServ) throws Exception;
	public int modificaServizio(ServizioType serv) throws Exception;
	public int getServizioDataoraMenoSysdate(int idServ) throws Exception;
	public boolean passaServizioInAreaPubblica(int idServ) throws Exception;
	public void setServizioKO(int idServ) throws Exception;
	
	public int eliminaServizio(ServizioType s) throws Exception;
	public int eliminaServizio(int idServ, int idUser) throws Exception;
	public ArrayList<ServizioType> listaServiziPartecipante(int idUser,	String dataIniz, String dataFine) throws Exception;
	public ArrayList<ServizioType> listaServiziCliente(int appoIdAutista, String dataIniz, String dataFine) throws Exception;
	public ArrayList<ServizioType> listaServiziSorgente(int idSorgente, String dataIniz, String dataFine) throws Exception;
	public ArrayList<ServizioType> listaServiziPubblici(String dataIniz, String dataFine) throws Exception;
	public ServizioType dettaglioServizioPubblico(int idServ) throws Exception;
	public ArrayList<ServizioType> listaServiziPubbliciIN(int idUser, String dataIniz, String dataFine) throws Exception;
	public ArrayList<ServizioType> listaServiziPubbliciOUT(int idUser, String dataIniz, String dataFine) throws Exception;
	public int assegnaCorsa(int idServ, int idUserScelto) throws Exception;
	public ArrayList<ServizioType> listaServiziIdUser(int idUser, String dataIniz, String dataFine)throws Exception;
	public HashMap listaServiziAutistaJtable(int idAutista, int idUser,  JTableType jTfilter ,String dataIniz, String dataFine ) throws Exception;
	public HashMap listaServiziIdUserJTable(int idUser, String dataIniz, String dataFine, JTableType j) throws Exception;
	public HashMap listaServiziClientiJtable(int idCliente, int idUser,	JTableType j, String dataIniz, String dataFine) throws Exception;
    public HashMap listaServiziPubJTable( String dataIniz, String dataFine, JTableType j) throws Exception;
    public HashMap listaServiziPubJTableIN(int idUser, String dataIniz, String dataFine, JTableType j) throws Exception;
    public HashMap listaServiziPubJTableOUT(int idUser, String dataIniz, String dataFine, JTableType j) throws Exception;

}
